home *** CD-ROM | disk | FTP | other *** search
-
-
-
- uuuupppplllleeeevvvveeeellll((((3333TTTTccccllll)))) uuuupppplllleeeevvvveeeellll((((3333TTTTccccllll))))
-
-
-
- NNNNAAAAMMMMEEEE
- uplevel - Execute a script in a different stack frame
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- uuuupppplllleeeevvvveeeellll ?_l_e_v_e_l? _a_r_g ?_a_r_g ...?
-
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- All of the _a_r_g arguments are concatenated as if they had been passed to
- ccccoooonnnnccccaaaatttt; the result is then evaluated in the variable context indicated by
- _l_e_v_e_l. UUUUpppplllleeeevvvveeeellll returns the result of that evaluation.
-
- If _l_e_v_e_l is an integer then it gives a distance (up the procedure calling
- stack) to move before executing the command. If _l_e_v_e_l consists of ####
- followed by a number then the number gives an absolute level number. If
- _l_e_v_e_l is omitted then it defaults to 1111. _L_e_v_e_l cannot be defaulted if the
- first _c_o_m_m_a_n_d argument starts with a digit or ####.
-
- For example, suppose that procedure aaaa was invoked from top-level, and
- that it called bbbb, and that bbbb called cccc. Suppose that cccc invokes the
- uuuupppplllleeeevvvveeeellll command. If _l_e_v_e_l is 1111 or ####2222 or omitted, then the command will
- be executed in the variable context of bbbb. If _l_e_v_e_l is 2222 or ####1111 then the
- command will be executed in the variable context of aaaa. If _l_e_v_e_l is 3333 or
- ####0000 then the command will be executed at top-level (only global variables
- will be visible).
-
- The uuuupppplllleeeevvvveeeellll command causes the invoking procedure to disappear from the
- procedure calling stack while the command is being executed. In the
- above example, suppose cccc invokes the command
-
- uuuupppplllleeeevvvveeeellll 1111 {{{{sssseeeetttt xxxx 44443333;;;; dddd}}}}
-
- where dddd is another Tcl procedure. The sssseeeetttt command will modify the
- variable xxxx in bbbb's context, and dddd will execute at level 3, as if called
- from bbbb. If it in turn executes the command
-
- uuuupppplllleeeevvvveeeellll {{{{sssseeeetttt xxxx 44442222}}}}
-
- then the sssseeeetttt command will modify the same variable xxxx in bbbb's context: the
- procedure cccc does not appear to be on the call stack when dddd is executing.
- The command ``iiiinnnnffffoooo lllleeeevvvveeeellll'' may be used to obtain the level of the current
- procedure.
-
- UUUUpppplllleeeevvvveeeellll makes it possible to implement new control constructs as Tcl
- procedures (for example, uuuupppplllleeeevvvveeeellll could be used to implement the wwwwhhhhiiiilllleeee
- construct as a Tcl procedure).
-
-
- KKKKEEEEYYYYWWWWOOOORRRRDDDDSSSS
- context, stack frame, variables
-
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-